package com.cloud.async.util.ret;

import com.cloud.async.result.core.product.AsyncResult;
import com.cloud.async.result.core.product.StandardResult;


/**
 * @author chengrui
 * @title: RetUtil
 * @projectName webCloudAsync
 * @description: 标准结果处理工具类
 * @date 2021/10/11 23:53
 */
public class RetUtil {

    /**
     * 私有处理类
     */
    private static final AsyncResult STANDARD_RESULT = new StandardResult();

    public RetUtil() {

    }

    /**
     * 指定json字符串转为相应的class对象
     * @param requiredType 返回对象
     * @param jsonStr 需要被转的字符串
     * @param <T>
     * @return
     */
    public static  <T> T getResult(Class<T> requiredType, String jsonStr) {
        return STANDARD_RESULT.getResult(requiredType, jsonStr);
    }

    /**
     * 指定json字符串中中的某一级字符串转为class对象
     * @param requiredType 返回对象
     * @param jsonStr 需要被转的字符串
     * @param args json字符串中的层级
     * @param <T>
     * @return
     */
    public static <T> T getResult(Class<T> requiredType,String jsonStr, String... args) {
        return STANDARD_RESULT.getResult(requiredType, jsonStr, args);
    }


}
